package com.xd.core.finance.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 预存款交易记录分页查询返回vo
 * </p>
 *
 * @author ZCH
 * @since 2025-02-26
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class PreDepositeQueryChannelTwoVo {

    @ApiModelProperty(value = "交易时间")
    @ExcelProperty(value = "交易时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date recordTime;

    @ApiModelProperty(value = "交易订单号")
    @ExcelProperty(value = "交易订单号")
    private String orderNo;

    @ApiModelProperty(value = "交易金额")
    @ExcelProperty(value = "交易金额")
    private BigDecimal realAmount;

    @ApiModelProperty(value = "交易状态(1-交易中，2-交易成功，3-交易失败)")
    @ExcelIgnore
    private String status;

    @ApiModelProperty(value = "交易状态(1-交易中，2-交易成功，3-交易失败)")
    @ExcelProperty(value = "交易状态")
    private String statusRemark;

    @ApiModelProperty(value = "渠道方公司")
    @ExcelProperty(value = "渠道方公司")
    private String peerAccName;

    @ApiModelProperty(value = "凭证上传时间")
    @ExcelProperty(value = "凭证上传时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private LocalDateTime voucherUploadTime;

    @ApiModelProperty(value = "转账凭证地址")
    @ExcelIgnore
    private String transferVoucher;

    @ApiModelProperty(value = "充值id")
    @ExcelIgnore
    private Integer id;

    @ApiModelProperty(value = "提现账户（1-放款账户，2-回款账户）")
    @ExcelIgnore
    private String accountType;

    @ApiModelProperty(value = "提现账户（1-放款账户，2-回款账户）")
    @ExcelProperty(value = "提现账户")
    private String accountTypeRemark;
}
